package com.qxbb.report.dao;

import com.qxbb.report.bo.ProductHistoryBO;
import com.qxbb.report.dto.GoodsDetailsDTO;
import com.qxbb.report.pojo.ChainInOutStock;
import com.qxbb.report.vo.GoodsDetailsVO;
import com.qxbb.report.vo.ProductHistoryVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * 【请填写功能名称】Mapper接口
 * 
 * @author ruoyi
 * @date 2023-11-15
 */
@Mapper
public interface ChainInOutStockMapper 
{
    /**
     * 查询【请填写功能名称】
     * 
     * @param clientId 【请填写功能名称】主键
     * @return 【请填写功能名称】
     */
     ChainInOutStock selectChainInOutStockByClientId(Long clientId);

    /**
     * 查询【请填写功能名称】列表
     * 
     * @param chainInOutStock 【请填写功能名称】
     * @return 【请填写功能名称】集合
     */
     List<ChainInOutStock> selectChainInOutStockList(ChainInOutStock chainInOutStock);

    /**
     * 新增【请填写功能名称】
     * 
     * @param chainInOutStock 【请填写功能名称】
     * @return 结果
     */
     int insertChainInOutStock(ChainInOutStock chainInOutStock);

    /**
     * 修改【请填写功能名称】
     * 
     * @param chainInOutStock 【请填写功能名称】
     * @return 结果
     */
     int updateChainInOutStock(ChainInOutStock chainInOutStock);

    /**
     * 删除【请填写功能名称】
     * 
     * @param clientId 【请填写功能名称】主键
     * @return 结果
     */
     int deleteChainInOutStockByClientId(Long clientId);

    /**
     * 批量删除【请填写功能名称】
     * 
     * @param clientIds 需要删除的数据主键集合
     * @return 结果
     */
     int deleteChainInOutStockByClientIds(Long[] clientIds);

    /**
     * 查询货品库存跟踪
     * @param clientId
     * @param barcode
     * @return
     */
    List<GoodsDetailsDTO> selectGoodsDetails(Integer clientId, String barcode);

    /**
     * 查询某个条码的所有货品追踪记录
     * @param clientIds
     * @param barcode
     * @return
     */
    List<GoodsDetailsDTO> selectAllDetails(List<Integer> clientIds, String barcode);

    /**
     * 根据店铺ID和条码查询跟踪产品库存信息
     * @param productHistoryBO
     * @return
     */
    List<ProductHistoryVO> selectProductHistory(@Param("productHistoryBO") ProductHistoryBO productHistoryBO);
}
